#include<iostream>
using namespace std;
typedef long long LL;
typedef LL ll;

const LL N = 5e4 + 10;
ll a[N];
ll l,n,m;

LL cala(LL mid)
{
	LL ret = 0;
	for (int i = 0; i <= n; i++)
	{
		int j = i + 1;
		while (a[j] - a[i] < mid && j <= n)j++;		
		ret += j - i - 1;

		i = j - 1;
		
	}
	return ret;
}

int main()
{
	cin >> l >> n >> m;
	
	for (int i = 1; i <= n; i++)
	{
		cin >> a[i];
	}
	a[0] = 0; a[n+1] = l; n++;

	LL left = 1; LL right = l;

	while(left < right)
	{
		ll mid = (left + right+1) / 2;
		if (cala(mid) > m) right = mid - 1;
		else left = mid;

	}
	cout << left << endl;

	return 0;
}
